/**
  * @file FileWriter.h
  * @author Thibault Merle et Guillaume Poussel
  */
#ifndef FILEWRITER_H
#define FILEWRITER_H

#include "base/Point.h"
#include "base/point_list.h"

/**
  * Classe abstraite représentant un écrivain. Cette classe est utilisée
  * pour écrire les résultats dans un fichier.
  */
class FileWriter {
protected:
    const char* _filename;

public:
    FileWriter(const char* filename) : _filename(filename) {};
    /**
      * Écrit les données dans un fichier.
      *
      * Cette méthode prend en paramètre la liste des points de départ et
      * l'enveloppe retournée par l'un ou l'autre des algorithmes.
      * @param points Points de l'ensemble de départ
      * @param hull Enveloppe convexe
      */
    virtual void write(const point_list points, const point_list hull) const = 0;
};

#endif // FILEWRITER_H
